import { reqGoodsInfo } from '../../../api/goods'
import { userBehavior } from '../../../behaviors/userBehavior'
import { reqAddCart, reqCartList } from '@/api/cart'

Page({

    behaviors: [userBehavior],

  // 页面的初始数据
  data: {
	goodsInfo: {}, // 商品详情
    show: false, // 控制加入购物车和立即购买弹框的显示
    count: 1, // 商品购买数量，默认是 1
    blessing: '', // 祝福语
    buyNow: 0, // 判断是加入购物车操作还是立即购买操作，0是加入购物车，1是立即购买
    allCount: '', // 购物车商品数量 
  },

  // 加入购物车
  handleAddcart() {
    this.setData({
      show: true,
      buyNow: 0
    })
  },

  // 立即购买
  handeGotoBuy() {
    this.setData({
      show: true,
      buyNow: 1
    })
  },

  // 提交按钮
  async handlerSubmit() {
      const { token, count, blessing, buyNow } = this.data
      const goodsId = this.goodsId

      //判断用户是否登录，未登录跳转到登录界面
      if(!token) {
          wx.navigateTo({
            url: '/pages/login/login',
          })
      }

      // 判断用户是点击的加入购物车 buyNow === 0 还是立即购买 buyNow === 1
      if(buyNow === 0) {
        const res = await reqAddCart({ goodsId, count, blessing })
        // 判断是否添加成功
        if(res.code === 200) {
            wx.toast({ title: '加入购物车成功' })

            this.setData({ show: false })

            this.getCartCount()
        }
      }
      else {
          wx.navigateTo({
            url: `/modules/orderPayModule/pages/order/detail/detail?goodsId=${goodsId}&blessing=${blessing}`,
          })
      }

  },

  // 点击关闭弹框时触发的回调
  onClose() {
    this.setData({ show: false })
  },

  // 监听是否更改了购买数量
  onChangeGoodsCount(event) {
    this.setData({
        count: Number(event.detail)
    })
  },

  // 获取商品详情的数据
  async getGoodsInfo() {
    const { data: goodsInfo } = await reqGoodsInfo(this.goodsId)
    this.setData({
      goodsInfo
    })
  },

  // 全屏预览图片
  previewImage() {
      wx.previewImage({
        urls: this.data.goodsInfo.detailList,
      })
  },

  // 统计购物车中商品数量
  async getCartCount() {
    if(!this.data.token) {
        return
    }

    const res = await reqCartList()
    
    // 判断购物车中是否存在商品
    if(res.data.length !== 0) {
        let allCount = 0
        res.data.forEach((item) => {
            allCount += item.count
        })
    
        this.setData({
            allCount: ( allCount > 99 ? '99+' : allCount ) + ''
        })
    }
  },

  onLoad(options) {
    this.goodsId = options.goodsId

    this.getGoodsInfo()

    this.getCartCount()
  },

    // 转发功能
    onShareAppMessage() {
        return {
            title: '所有的砰然心动，都是你',
            path: '/pages/index/index',
            imageUrl: '../../../../../assets/images/love.jpg'
        }
    },

    // 分享到朋友圈功能
    onShareTimeline() {},
})
